﻿//795. 区间子数组个数
//给你一个整数数组 nums 和两个整数：left 及 right 。找出 nums 中连续、非空且其中最大元素在范围[left, right] 内的子数组，并返回满足条件的子数组的个数。
//生成的测试用例保证结果符合 32 - bit 整数范围。


class Solution {
public:
    int numSubarrayBoundedMax(vector<int>& nums, int left, int right)
    {
        int ans = 0;
        int n = nums.size();
        int l = -1;
        int r = -1;
        for (int i = 0; i < n; i++)
        {
            //nums[i]最后一个大于等于right的值
            if (nums[i] > right)   l = i;
            //最后一个大于等于left的值
            if (nums[i] >= left)   r = i;
            ans += r - l;
        }
        return ans;
    }
};